
using System.Collections.Generic;
using OpenServers.Net.Common;
using OpenServers.Net.Common.FileSystem;
using OpenServers.Net.Common.Security;

namespace OpenServers.Net.HttpServer {
    /// <summary>
    /// Interface for an HTTP Server for serving web pages to a web client such as a browser.
    /// </summary>
    public interface IHttpServer : IServer {
        /// <summary>
        /// The backing file system for served up files.
        /// </summary>
        IFileSystem FileSystem { get; }

        /// <summary>
        /// The security provider protecting resources.
        /// </summary>
        ISecurityProvider SecurityProvider { get; }

        /// <summary>
        /// The name of the server. returned in the HTTP headers.
        /// </summary>
        string ServerName { get; }

        /// <summary>
        /// The list of default pages. (i.e. index.html, index.htm, etc.)
        /// </summary>
        IEnumerable<string> DefaultPages { get; }
    }
}
